package 传智播客_黑马.java高级.reflect反射;

import java.lang.reflect.Constructor;

public class GetConstructor {

    public static void main(String[] args) throws Exception {
//        获取构造方法之前必须的有一个Class吧
        Class<Person> personClass = Person.class;
//        获取有参的构造方法
        Constructor<Person> constructor = personClass.getConstructor(String.class, int.class);
        System.out.println(constructor);

//        获取无参的构造方法
        Constructor<Person> constructor1 = personClass.getConstructor();
        System.out.println(constructor1);

//        获取到了构造方法我们就可以new对象了,有参：
        Person p1 = constructor.newInstance("张三", 18);
        System.out.println(p1);

//        无参：
        Person p2 = constructor1.newInstance();
        System.out.println(p2);

//        如果无参的话，代码就有点麻烦，所以我们用简单的方法：用Class的对象方法来new：
        Person p3 = personClass.newInstance();
        System.out.println(p3);
    }
}
